import type { Api } from '@/typings/request'
import { ERROR_MSG_DURATION, NO_ERROR_MSG_CODE } from './constant'

/** 错误消息栈，防止同一错误同时出现 */
const msgStack: Set<string> = new Set<string>()

/**
 * 显示错误信息
 * @param error
 */
export function showErrorMsg(error: Api.Error, config?: Api.RequestConfig) {
    if (config?.ignoreMsg) return
    if (!error.type) error.type = 'backend'
    if (!error.msg || NO_ERROR_MSG_CODE.includes(error.code) || msgStack.has(error.msg))
        return

    msgStack.add(error.msg)
    window.console.warn(error.code, error.msg)
    window.$message?.error(error.msg, { duration: ERROR_MSG_DURATION })
    setTimeout(() => {
        msgStack.delete(error.msg)
    }, ERROR_MSG_DURATION)
}
/**
 * 显示错误信息
 * @param error
 */
export function showSuccessMsg(msg: string, config?: Api.RequestConfig) {
    if (config?.ignoreMsg || !msg) return

    // msgStack.add(msg)
    window.$message?.success(msg)
    // setTimeout(() => {
    //     msgStack.delete(msg)
    // }, ERROR_MSG_DURATION)
}
